<?php
/**
 * YAction 公共 Action
 */
include LIBRARY_PATH . 'ORG/Util/SysUtil.class.php';
class YAction extends Action {
	//protected $mid = -1;  // 自己
	//protected $oid = -1;  // 他人
	
	public function __construct() {
		parent::__construct();
			
		global $_G;
		
		// 导航
		$_G['category'] = D('Category')->getCategoryByCondition('1 = 1');  
		$_G['category'] = y_listToTree($_G['category']);
		
		// seo
		$_G['seo'] = SysUtil::loadConfig('seo_conf.php', './Public');
		// footer
		$_G['footer'] = SysUtil::loadConfig('footer_conf.php', './Public');
		// 自己
		//$_G['mUser'] = isset($_SESSION['mUser']) ? $_SESSION['mUser'] : null;
		//$_G['mid'] = isset($_SESSION['mUser']) ? $_SESSION['mUser']['id'] : -1;
		//$this->mid = intval($_G['mid']);
		// 其他用户
		//$_G['oid'] = isset($_GET['oid']) ? $_GET['oid'] : -1;
		//$this->oid = intval($_G['oid']);
		
		if($this->isMobile()) {
			C('DEFAULT_THEME', 'mobile');
			C('TMPL_CACHE_PREFIX', 'm_');
		}
	}
	
	/*
	protected function chkLogin($redirectPage = 'Login:index') {
		if(!is_numeric($this->mid) || $this->mid <= 0) {
			$this->display($redirectPage);
			exit;
		}
	}
	protected function isLogin() {
		$f = false;
		if(is_numeric($this->mid) && $this->mid >= 0) {
			$f = true;
		}
		return $f;
	}
	*/
	
	private function isMobile() {
		// 如果有HTTP_X_WAP_PROFILE则一定是移动设备
		if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))
			return true;
		
		//此条摘自TPM智能切换模板引擎，适合TPM开发
		if(isset ($_SERVER['HTTP_CLIENT']) &&'PhoneClient'==$_SERVER['HTTP_CLIENT'])
			return true;
			
		//如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
		if (isset ($_SERVER['HTTP_VIA']))
			return stristr($_SERVER['HTTP_VIA'], 'wap') ? true : false;  //找不到为flase,否则为true
		
		//判断手机发送的客户端标志,兼容性有待提高
		if (isset ($_SERVER['HTTP_USER_AGENT'])) {
			$clientkeywords = array(
				'nokia','sony','ericsson','mot','samsung','htc','sgh','lg','sharp','sie-','philips','panasonic','alcatel','lenovo','iphone','ipod','blackberry','meizu','android','netfront','symbian','ucweb','windowsce','palm','operamini','operamobi','openwave','nexusone','cldc','midp','wap','mobile'
			);
			//从HTTP_USER_AGENT中查找手机浏览器的关键字
			if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))) {
				return true;
			}
		}
		
		//协议法，因为有可能不准确，放到最后判断
		if (isset ($_SERVER['HTTP_ACCEPT'])) {
			// 如果只支持wml并且不支持html那一定是移动设备
			// 如果支持wml和html但是wml在html之前则是移动设备
			if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html')))) {
				return true;
			}
		}
		
		return false;
	}
}
